﻿using System;
using System.Collections.Generic;
using System.Linq;
using BFlatCompile.Nodes;

namespace BFlatCompile.Serializer
{
	internal class Things
	{
		public List<Field> Fields { get; private set; }
		public List<Field> StaticFields { get; private set; }
		public List<Constructor> Constructors { get; private set; }
		public List<Constructor> StaticConstructors { get; private set; }
		public List<Method> Methods { get; private set; }
		public List<Method> StaticMethods { get; private set; }
		public List<Property> PropertyGetters { get; private set; }
		public List<Property> StaticPropertyGetters { get; private set; }
		public List<Property> PropertySetters { get; private set; }
		public List<Property> StaticPropertySetters { get; private set; }
		public List<MethodParam> MethodParamValues { get; private set; }

		public Things()
		{
			this.Fields = new List<Field>();
			this.StaticFields = new List<Field>();
			this.Constructors = new List<Constructor>();
			this.StaticConstructors = new List<Constructor>();
			this.Methods = new List<Method>();
			this.StaticMethods = new List<Method>();
			this.PropertyGetters = new List<Property>();
			this.StaticPropertyGetters = new List<Property>();
			this.PropertySetters = new List<Property>();
			this.StaticPropertySetters = new List<Property>();
			this.MethodParamValues = new List<MethodParam>();
		}
	}
}
